/*
 * Copyright (C) 2004-2013 L2J Server
 * 
 * This file is part of L2J Server.
 * 
 * L2J Server is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * L2J Server is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package com.l2jserver.communityserver.model;

import javolution.util.FastList;

/**
 * This class describes a player instance
 */
public class L2Player
{
	private final int _objId;
	private String _name;
	private final String _accountName;
	private int _level;
	private int _accessLevel;
	private int _clanId;
	private boolean _isOnline;
	private final FastList<Integer> _friends;
	private final FastList<Integer> _selectedFriends;
	private Forum _forum;
	
	public L2Player(int objId, String name, String accountName, int level, int accessLevel, int clanId, boolean isOnline)
	{
		_objId = objId;
		_name = name;
		_accountName = accountName;
		_level = level;
		_accessLevel = accessLevel;
		_clanId = clanId;
		_isOnline = isOnline;
		_forum = null;
		_friends = new FastList<>();
		_selectedFriends = new FastList<>();
	}
	
	public int getObjId()
	{
		return _objId;
	}
	
	public void setName(String val)
	{
		_name = val;
	}
	
	public String getName()
	{
		return _name;
	}
	
	public String getAccountName()
	{
		return _accountName;
	}
	
	// do not use this from here!!!
	public Forum getForum()
	{
		return _forum;
	}
	
	public void setLevel(int val)
	{
		_level = val;
	}
	
	public int getLevel()
	{
		return _level;
	}
	
	public void setAccessLevel(int val)
	{
		_accessLevel = val;
	}
	
	public int getAccessLevel()
	{
		return _accessLevel;
	}
	
	public void setClanId(int val)
	{
		_clanId = val;
	}
	
	public int getClanId()
	{
		return _clanId;
	}
	
	public boolean isOnline()
	{
		return _isOnline;
	}
	
	public void setIsOnline(boolean val)
	{
		_isOnline = val;
	}
	
	public void setForum(Forum f)
	{
		_forum = f;
	}
	
	public void addFriend(Integer friendId)
	{
		_friends.add(friendId);
	}
	
	public void removeFriend(Integer friendId)
	{
		_friends.remove(friendId);
	}
	
	public void removeAllFriends()
	{
		_friends.clear();
	}
	
	public FastList<Integer> getFriendList()
	{
		return _friends;
	}
	
	public void selectFriend(Integer friendId)
	{
		_selectedFriends.add(friendId);
	}
	
	public void deSelectFriend(Integer friendId)
	{
		_selectedFriends.remove(friendId);
	}
	
	public FastList<Integer> getSelectedFriendsList()
	{
		return _selectedFriends;
	}
}
